-- @作者: baidwwy
-- @邮箱:  313738139@qq.com
-- @创建时间:   2021-03-08 02:31:14
-- @最后修改来自: baidwwy
-- @Last Modified time: 2021-03-14 19:21:13

local GenerateBotItem = class()


function GenerateBotItem:init()
	self.物品类别 = {[1]="兽诀",[2]="环装",[3]="强化",[4]="炼妖"}
	-- 三药，烹饪，宝图，
end

function GenerateBotItem:随机商品()
	local rate = math.random(1, #self.物品类别)
	if rate == 1 then
	    return self:随机兽诀()
	elseif rate == 2 then
	    return  self:随机环装()
	elseif rate == 3 then
	    return  self:随机强化()
	elseif rate == 4 then
	    return  self:随机炼妖()
	end
end


-- 标识：2 特殊， 1 高级 ， 0 低级
function GenerateBotItem:生成兽诀( 标识 )
	local 名称 = "魔兽要诀"
	local 价格 = 1000000
	local 技能 = ""
	if 标识 == 2 then
		名称 = "高级" .. 名称
	    价格 = 价格 * 50
	    技能 = 取特殊兽诀名称()
	elseif 标识 == 1 then
	    名称 = "高级" .. 名称
	    价格 = 价格 * 10
	    技能 = 取高级兽诀名称()
	else
		技能 = 取低级兽诀名称()
	end
	-- 价格在正负20%之间波动
	local 价格 = 价格 * math.random(800,1200) / 1000
	local item ={道具={价格=200,参数=技能,类型="普通",名称=名称},单价=价格}

	return item
end

function GenerateBotItem:生成低级兽诀()
	return self:生成兽诀(0)
end

function GenerateBotItem:生成高级兽诀()
	return self:生成兽诀(1)
end

function GenerateBotItem:生成特殊兽诀()
	return self:生成兽诀(2)
end

function GenerateBotItem:随机兽诀()
	local rate = math.random(1,3)
	if rate == 1 then
	    return self:生成低级兽诀()
	elseif rate == 2 then
		return self:生成高级兽诀()
	else
		return self:生成特殊兽诀()
	end
end


-- {防御=39,等级=60,制造玩家=0,名称="玉女发冠",识别码="1981721615143671807336400101943296",魔法=74,三围属性={},耐久度=500,符石={最小孔数=0,最大孔数=2},特效={[1]="无级别限制"},鉴定=true,五行="火",类型="头盔",专用=400101,锻造数据={}}
-- 标识 武器，防具
function GenerateBotItem:生成环装(标识)
	local 基数 = math.random(1,10)
	local 等级 = 基数 * 10
	local 三围基数 = math.floor((5 * 基数) * (math.random(50,150) / 100))
	local 识别码 = os.time() .. math.random(10000, 99999)
	local 装备 = {耐久度=500,符石={最小孔数=0,最大孔数=0},五行=生成五行(),三围属性={},锻造数据={},等级=等级,类型=标识,制造玩家=0,鉴定=true,识别码=识别码,}
	local 类型 = ""
	local 名称 = ""
	if 标识 == "武器" then
	    类型 =  制造装备.武器.类型[math.random(1,#制造装备.武器.类型)]
	    -- __S服务:输出(类型)
	    名称 = 制造装备.武器[类型][等级]
	    -- __S服务:输出(名称)
	    装备.名称 = 名称
	    -- 装备的攻击和命中在50%~150%之间波动
	    装备.伤害 = (100 + 10 * 等级) * (math.random(50,150) / 100)
	    装备.命中 = (100 + 10 * 等级) * (math.random(50,150) / 100)
	elseif 标识 == "防具" then
		类型 = 制造装备.防具[math.random(1,#制造装备.防具)]
		装备.名称 = 制造装备[类型][等级]
		装备.类型 = 类型
		-- __S服务:输出(类型 .. " | " .. 装备.名称)
		if 类型 == "项链" then
			装备.灵力 = 40 + math.random(20,80) * 基数
		elseif 类型 == "鞋子" then
			装备.防御 = math.random(5,25) * 基数
			装备.敏捷 = math.random(10,30) * 基数
		elseif 类型 == "男衣" or 类型 == "女衣" then
			装备.类型 = "衣服"
			装备.防御 = math.random(30,85) * 基数
		elseif 类型 == "头盔" or 类型 == "发钗" then
			装备.类型 = "头盔"
			装备.防御 = math.random(10,25) * 基数
			装备.魔法 = math.random(15,60) * 基数
		elseif 类型 == "腰带" then
			装备.防御 = math.random(20,50) * 基数
			装备.气血 = math.random(50,100) * 基数
		end
	end

	if math.random(1,100) < 10 then
	   装备.特技 = 取特技名称()
	end

	local 单价 = math.random(2000,10000) * 基数
	return {道具=装备,单价=单价}
end

function GenerateBotItem:随机环装()
	if math.random(1,10) <= 5 then
		return self:生成环装("武器")
	else
		return self:生成环装("防具")
	end
end

function GenerateBotItem:随机强化()
	local rate = math.random(1, 2)
	if rate == 1 then
	    return self:生成宝石()
    elseif rate == 2 then
	    return self:生成强化石()
	end
end

function GenerateBotItem:生成宝石()
	local 名称 = Q_宝图宝石[math.random(1,#Q_宝图宝石)]
	__S服务:输出(名称)
	local 等级 = math.random(1,10)
	local 价格基数 = 20000
	local 单价 = math.ceil(math.pow(1.1,等级) * 价格基数 * 等级)
	local 宝石 = {道具={价格=200000,名称=名称,类型="宝石",参数=等级},单价=单价}
	return 宝石
end
function GenerateBotItem:生成强化石()
	-- 取强化石
	local 名称 = 取强化石()
	local 数量 = math.random(1, 99)
	local 单价 = math.ceil(20000 * math.random(90,110) / 100)
	local item = {道具={价格=5,数量=数量,类型="普通",名称=名称},单价=单价}
	return  item
end

function GenerateBotItem:随机炼妖()
	local rate = math.random(1,2)
	if rate == 1 then
	    return self:生成元宵()
	elseif rate == 2 then
		return self:生成内丹()
	end
end

function GenerateBotItem:生成元宵()
	local 资质 = 全局变量.资质标识[math.random(1, #全局变量.资质标识)]
	local 数据 = math.random(1, 99)
	local 单价 = math.ceil(50000 * math.random(8,12) / 10)
	local item = {道具={参数=资质,数量=数据,名称="元宵",类型="功能"},单价=单价}
	return item
end

function GenerateBotItem:生成内丹()

	local 名称 = "召唤兽内丹"
	local 类型 = "普通"
	local 单价 =  500000
	if math.random(1,5) <= 2 then
	    名称 = "高级召唤兽内丹"
	    类型 = "高级"
	    单价 = 1000000
	end
	local 技能 =取内丹(类型)
	单价 = math.ceil(单价 * math.random(50,125) / 100)
	local item = {道具={名称=名称,技能=技能,类型="炼妖"},单价=单价}
	return  item
end

return GenerateBotItem
